// 导入 axios
import axios from 'axios'
// 导入 store
import store from '@/store'
// 创建 axios 的副本对象
const instance = axios.create({
  // baseURL: 'http://localhost:3000' // 这是人资的后端服务器的地址
})
// 设置 axios 的拦截器
// 请求拦截器
instance.interceptors.request.use(
  config => {
    // 统一给所有的请求设置 token
    // 1.0 获取 token
    const token = store.getters.token
    // 2.0 判断  token 是否存在，如果存在添加 到请求头中
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)
// 响应拦截器
instance.interceptors.response.use(
  response => {
    // reponse 中包含了服务器响应回来的内容，包含在 data 属性中
    // 统一处理参数出错的情况
    const { data, message, success } = response.data
    // 判断当前请求是否出错
    if (success) {
      // 返回数据
      return response.data
    } else {
      // 提示错误信息
      console.log(message)
      return Promise.reject(new Error(message))
    }
  },
  error => {
    return Promise.reject(error)
  }
)
// 暴露 axios 副本对象
export default instance
